package com.kingyun.gpsinspection.purificationservice.dao.mapper.jsm;


import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Report;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.ReportTemp;

import java.util.List;

/**
 * 报表模板mapper
 */
public interface JsmReportTempMapper {

    /**
     * 新增模板
     * @param record
     * @return
     */
    int insert(ReportTemp record);

    /**
     * 列表总数
     * @param record
     * @return
     */
    int queryListCount(ReportTemp record);

    /**
     * 查询模板列表
     * @param record
     * @return
     */
    List<ReportTemp> queryList(ReportTemp record);

    /**
     * 根据主键删除记录
     * @param reportTempId
     * @return
     */
    int deleteByPrimaryKey(String reportTempId);

    /**
     * 根据id查询模板信息
     * @param reportTempId
     * @return
     */
    ReportTemp queryById(String reportTempId);

    /**
     * 修改模板
     * @param reportTemp
     * @return
     */
    int updateTemp(ReportTemp reportTemp);

    /**
     * 状态删除报表
     * @param repoortTempId
     * @return
     */
    int updateStatus(String repoortTempId);

    /**
     * 查询所有的测量点
     * @param reportTempId
     * @return
     */
    List<String> queryApIds(String reportTempId);

    /**
     * 新增模版时，创建一张实例化报表
     * @param report
     * @return
     */
    int insertReport(Report report);


    /**
     * 找到某个组织下还没有关联的数据集
     * @param reportTemp 组织ID
     * @return
     */
    List<ReportTemp> queryByOrgIdWithoutAssociate(ReportTemp reportTemp);


    /**
     * 找到某个组织下还没有关联的数据集数量
     * @param reportTemp 组织ID
     * @return
     */
    int queryByOrgIdWithoutAssociateCount(ReportTemp reportTemp);


    String queryOrgNames(List<String> list);

}